package com.hsnn.medstgmini.trading.pur.service;

import java.util.List;
import java.util.Map;

import com.hsnn.medstgmini.trading.pur.model.PurOrderLogisticsOld;
import com.hsnn.medstgmini.trading.pur.model.form.DispatchInfo;
import com.hsnn.medstgmini.trading.pur.model.form.PurOrderInfoForm;
import com.hsnn.medstgmini.util.Pagination;

public interface PurOrderInfoManager {

	/**
	 * @category 订单明细查询[中心端]
	 * @author 应晓川
	 * @date 2015年7月9日
	 */
	 Pagination getOrdersDetailList(Pagination page);
	 
	/**
	 * @category 订单明细查询[生产企业端]
	 * @author 应晓川
	 * @date 2015年7月9日
	 */
	 Pagination getOrdersDetailListByProComp(Pagination page);
	 
	/**
	 * @category 订单明细查询[配送企业]
	 * @author 应晓川
	 * @date 2015年7月18日
	 */
	 Pagination getOrdersDetailListByComp(Pagination page);
	 
	 
	 
	/**
	 * @category 订单明细查询[医疗机构]
	 * @author 应晓川
	 * @date 2015年7月13日
	 */
	 Pagination getOrderInfoByHosp(Pagination page);
	 

	 /**
	  * 
	  *@category 获取订单信息列表数据（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月10日 上午10:13:33
	  *@param page
	  *@return
	  */
	 Pagination getHospOderInfoDataList(Pagination page);
	 /**
	  * 
	  *@category 获取订单信息详情列表数据（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月10日 上午11:55:51
	  *@param page
	  *@return
	  */
	 Pagination getHospOderInfoDetailDataList(Pagination page);
	 /**
	  * 
	  *@category 获取物流信息（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月10日 下午2:12:40
	  *@param page
	  *@return
	  */
	 Pagination getOrderLogisticsData(Pagination page);
	 /**
	  * 
	  *@category 获取医疗机构确认收货页面数据（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月13日 下午2:20:42
	  *@param page
	  *@return
	  */
	 Pagination getConfirmRecpDataList(Pagination page);
	 
	 /**
	  * @category 获取医疗机构确认收货订单明细页面数据（医疗机构）
	  * @author 韩守松
	  * @date   2015年11月29日
	  * @param  @param page
	  * @param  @return
	  */
	 Pagination getConfirmRecpOrderDataList(Pagination page);
	 
	 /**
	  * 
	  *@category 获取确认订单详情页面（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月13日 下午2:50:39
	  *@param page
	  *@return
	  */
	 Pagination getConfirmRecpDetailDataList(Pagination page);
	 /**
	  * 
	  *@category 根据勾选的配送ID，获取所有的配送信息（医疗机构，为验证确认收货时到货数量不能大于配送数量）
	  *@author 邱磊
	  *@date 2015年7月13日 下午3:30:26
	  *@param list
	  *@return
	  */
	 Map<String, Integer> getDelInfoList(List<DispatchInfo> list);
	 /**
	  * 
	  *@category 确认收货按钮操作（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月13日 下午5:06:47
	  *@param list
	  */
	 void confirmRecp(List<PurOrderInfoForm> list);
	 /**
	  * 
	  *@category 未到货功能操作（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月13日 下午5:35:25
	  *@param list
	  */
	 void notArrived(List<PurOrderInfoForm> list);
	 /**
	  * 
	  *@category 获取到货明细列表（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月13日 下午6:26:31
	  *@param page
	  *@return
	  */
	 Pagination getArrivedDrug(Pagination page);
	 /**
	  * 
	  *@category 整包确认收货（医疗机构操作，所有到货数量就是配送数量）
	  *@author 邱磊
	  *@date 2015年7月14日 上午9:38:00
	  *@param page
	  */
	 void confirmByPack(Pagination page);
	 /**
	  * 
	  *@category 整包未到货操作（医疗机构）
	  *@author 邱磊
	  *@date 2015年7月14日 上午10:16:35
	  *@param page
	  */
	 void noArrivedByPack(Pagination page);
	 /**
	  * 
	  *@category 根据订单明细ID查询物流信息
	  *@author 邱磊
	  *@date 2015年7月14日 上午10:51:11
	  *@param page
	  *@return
	  */
	 Pagination toDeliverDetailById(Pagination page);
	 /**
	  * 
	  *@category 获取未评价订单列表
	  *@author 邱磊
	  *@date 2015年7月19日 下午1:42:40
	  *@param page
	  *@return
	  */
	 public Pagination getUnReviewsDataList(Pagination page);
	 /**
	  * 
	  *@category 根据物流信息ID查询物流历史信息
	  *@author 邱磊
	  *@date 2015年7月19日 下午8:43:36
	  *@param interflowId
	  *@return
	  */
	 public PurOrderInfoForm getLogisticsInfo(String interflowId);
	 /**
	  * 
	  *@category 保存订单评价信息
	  *@author 邱磊
	  *@date 2015年7月19日 下午8:49:41
	  *@param page
	  */
	 public void saveReviews(Pagination page);
	 /**
	  * 
	  *@category 查询已评价列表
	  *@author 邱磊
	  *@date 2015年7月20日 下午5:13:09
	  *@param page
	  *@return
	  */
	 public Pagination getReviewsDataList(Pagination page);
	 
	 public Pagination getReviewsDataListDetail(Pagination page);

	 /**
	  * 
	  *@category 获取历史订单信息列表数据（医疗机构）
	  *@author 徐国鹏
	  *@date 2015年7月30日 上午10:13:33
	  *@param page
	  *@return
	  */
	 Pagination getHospOderInfoOld(Pagination page);
	/**
	 * @category 获取历史订单详情信息（医疗机构端）
	 * @Auther 徐国鹏
	 * @date 2015年7月30日 下午1:29:07
	 * @param page
	 * @return Pagination
	 */
	 Pagination getHospOderOldDetail(Pagination page);
	 /**
	  * @category 已评价详情表单数据
	  * @Auther 徐国鹏
	  * @date 2015年8月4日 下午8:47:14
	  * @param interflowId
	  * @return PurOrderInfoForm
	  */
	 public PurOrderLogisticsOld getAoginfoById(String interflowId);
	 /**
	  * 
	  *@category 根据订单明细ID查询物流信息
	  *@author 徐国鹏
	  *@date 2015年8月7日 下午14:51:11
	  *@param page
	  *@return
	  */
	 Pagination toDeliverDetailByIdOld(Pagination page);
	 /**
	  * 
	  *@category 根据包号获取物流信息（医疗机构）
	  *@author 徐国鹏
	  *@date 2015年7月10日 下午2:12:40
	  *@param page
	  *@return
	  */
	 Pagination getOrderLogisticsDataOld(Pagination page);

	 List<Map<String, Object>> getPurOrderlogisticsById(String id);

	Map<String, Object> getTheTimesById(String id);

	List<?> getGoodInfoById(String id);
	
	 /**
	  * 
	  *@category 医疗机构审核订单
	  *@author 应晓川
	  *@date 2015年12月4日10:52:34
	  *@param page
	  */
	 public void auditHospOderInfo(Pagination page);
	 
	 /**
	  * 
	  *@category 医疗机构获取未审核的订单
	  *@author 应晓川
	  *@date 2015年12月4日10:52:34
	  *@param page
	  */
	 Pagination getNotAuditHospOderList(Pagination page);
	 
	 /**
	  * 
	  *@category 验证重复审核
	  *@author 应晓川
	  *@date 2015年12月4日11:47:52
	  *@param page
	  */
	 Object checkAuditHospOder(Pagination page);
	 
	 Pagination getAuditHospOderResultList(Pagination page);
	 
	 
	 Pagination checkHisRecordAmount(Pagination page);
	 
	 
}
